1
Oltre la Ricerca Lineare: Il Potere dei Contenitori Associativi
AI037Lesson 15
00:00

Immagina una biblioteca in cui i libri non sono ordinati per data di arrivo, ma da una Chiave Universale. Questo rappresenta il cambiamento di paradigma dalla sequenzialità ai Contenitori Associativi. Invece di scansionare un vettore in modo lineare ($O(N)$), utilizziamo un map o set per ottenere ricerche in tempo logaritmico ($O(\log n)$).

1. La Natura dell'Associazione

In un map, memorizziamo coppie chiave-valore. La chiave agisce come indice che può essere una stringa, un oggetto personalizzato o qualsiasi tipo che supporti Ordinamento Debole Stretto. Un set, al contrario, memorizza solo chiavi uniche, rendendolo lo strumento ideale per testare l'appartenenza o filtrare.

Vettore (Sequenziale)Set (Associativo)[0]"A"[1]"B"[2]"A"(Duplicato)Filtro UnicoChiave:"A"Chiave:"B"

2. Ordinati vs. Non Ordinati

Contenitori standard (map, set) mantengono le chiavi ordinate. Lo Standard C++11 ha introdotto varianti non ordinate (unordered_map) che usano una funzione hash per prestazioni medie $O(1)$. Cerca il Logo C++11 quando utilizzi questi contenitori ad alte prestazioni.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>